package com.wanxi.service.impl;

import com.wanxi.dao.ProductDao;
import com.wanxi.dao.impl.ProductDaoImpl;
import com.wanxi.dto.ProductDTO;
import com.wanxi.model.ProductModel;
import com.wanxi.service.ProductService;
import com.wanxi.util.Tool;
import com.wanxi.vo.ProductVO;

import java.util.List;

public class ProductServiceImpl implements ProductService {

    private ProductDao productDao = new ProductDaoImpl();

    @Override
    public List<ProductDTO> getData(ProductVO productVO) {

        ProductModel productModel = new ProductModel();
//        productModel.setLimit(productVO.getLimit());
//        dao层只能传递model
//        所以，需要在这里将vo转换为model
        productModel = Tool.copy(productVO, ProductModel.class);
//        将model转换为DTO传递到servlet
        List<ProductModel> productModelList = productDao.getProductModelList(productModel);
        return Tool.copy(productModelList, ProductDTO.class);
    }

    @Override
    public List<ProductDTO> findById(ProductVO productVO) {
        ProductModel productModel = Tool.copy(productVO, ProductModel.class);
        List<ProductModel> productModelList = productDao.findById(productModel);
        return Tool.copy(productModelList, ProductDTO.class);

    }

    @Override
    public List<ProductDTO> findAll(ProductVO productVO) {
        ProductModel productModel = Tool.copy(productVO, ProductModel.class);
        List<ProductModel> productModelList = productDao.findAll(productModel);
        return Tool.copy(productModelList, ProductDTO.class);
    }

    @Override
    public ProductDTO count(ProductVO productVO) {
        ProductModel productModel = Tool.copy(productVO, ProductModel.class);
        ProductModel model = productDao.count(productModel);
        return Tool.copy(model, ProductDTO.class);
    }
}
